#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<pthread.h>
void* thread_main(void *arg);
//此时不用担心线程比进程是否后结束了，使用pthread_join
int main(int argc,char *argv[])
{
	pthread_t t_id;
	int thread_param=5;
	void *thr_ret;//线程main函数返回值地址
	if(pthread_create(&t_id,NULL,thread_main,(void*)&thread_param)!=0)
	{
		puts("pthread_create() error");
		return -1;
	}
	//调用该函数的进程或线程将进入等待状态
	//int pthread_join(pthread_t thread,void **status)
	if(pthread_join(t_id,&thr_ret)!=0)
	{
		puts("pthread_join() error");
		return -1;
	}
	//输出线程返回值
	printf("Thread return message:%s\n",(char*)thr_ret);
	free(thr_ret);
	return 0;
}
void *thread_main(void *arg)
{
	int i;
	int cnt=*((int *)arg);
	char *msg=(char *)malloc(sizeof(char)*50);
	strcpy(msg,"Hello,I'am thread~\n");
	for(i=0;i<cnt;i++)
	{
		sleep(1);
		puts("running thread");
	}
	return (void*)msg;
}
